$(document).ready(init_contrato)

/*funcion que se ejecuta cuando carga de la pagina*/
function init_contrato(){


    $.datepicker.setDefaults( $.datepicker.regional[ "es" ] );


    $("#fechaini").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'dd/mm/yy',
        showButtonPanel: true,
        onClose: function() {
            this.focus();
        }
        
    }); 
    //$("#fechafin").datepicker($.datepicker.regional['es']);

    $("#fechafin").datepicker({
        changeMonth: true,
        changeYear: true, 
        dateFormat: 'dd/mm/yy',
        showButtonPanel: true,
        onClose: function() {
            this.focus();
        }
        
    }); 


    // cargar_contrato();
    $("#nuevaContratoBtn").button({
        icons: {
            primary: 'ui-icon-plusthick'
        }
    });

    $("#buscarBtn").button({
        icons: {
            primary: 'ui-icon-search'
        },
        text: false
    });

    $("#clearBtn").button({
        icons: {
            primary: 'ui-icon-arrowthick-1-w'
        },
        text: false
    });
                    
    $("#ayudaBtn").button({
        icons: {
            primary: 'ui-icon-help'
        },
        text: false
    });
   
    $("#id_entidad").load("/salus/AdministrarServlet", {
        op:"-11"
    });
    $("#id_manual").load("/salus/AdministrarServlet", {
        op:"-7"
    });
    $("#id_tipo_contrato").load("/salus/AdministrarServlet", {
        op:"-12"
    });
    $("#id_regimen").load("/salus/AdministrarServlet", {
        op:"-13"
    });
    $("#id_tipo_doc").load("/salus/AdministrarServlet", {
        op:"-14"
    });
    $("#id_grupo_actividad").load("/salus/AdministrarServlet", {
        op:"-9"
    });
   

    $("#nuevaContratoBtn").click(function(){
        
        clear_form_elements($("#contrato-form"));
        
        mostrar_campos({
            id:"",
            codigo:"",
            descripcion:"",
            id_entidad:"",
            id_manual:"",
            id_tipo_contrato:"",
            id_regimen:"",
            id_tipo_doc:"",
            fechaini:"",
            fechafin:"",
            monto_fac:"",
            monto_cap:"",
            porc:"",
            upcanual:"",
            upcmes:"",
            modelo:"",
            pyp:"",
            gen:"",
            activo:"",
            op:"nuevo"
        });

        formularioContrato();
        $("#tabs_contrato").tabs({
            disabled: [1,2]
        });
    })

    $("#formContrato").validate({
        rules:{            
            codigo:{
                required:true
            },
            descripcion:{
                required:true
            },
            id_manual:{
                required:true
            },
            fechaini:{
                required:true
            },
            fechafin:{
                required:true
            }

        }
    })

    $("#buscarBtn").click(buscar_contrato);
    
    $("#buscarCod").keypress(function(ev){
        if(ev.keyCode==13){       
            buscar_contrato()
        }
    })
    $("#buscarDes").keypress(function(ev){
        if(ev.keyCode==13){       
            buscar_contrato()
        }
    })
    
    
    
    $("#clearBtn").click(limpiarBusqueda);

    $("#modelo").change(function(){
        if(this.checked){
            $("#vmodelo").val('On');
        }else{
            $("#vmodelo").val('Off');
        }
    })
    $("#pyp").change(function(){
        if(this.checked){
            $("#vpyp").val('On');
        }else{
            $("#vpyp").val('Off');
        }
    })
    $("#gen").change(function(){
        if(this.checked){
            $("#vgen").val('On');
        }else{
            $("#vgen").val('Off');
        }
    })
    $("#activo").change(function(){
        if(this.checked){
            $("#vactivo").val('On');
        }else{
            $("#vactivo").val('Off');
        }
    })


    /*validacion buscador*/
    $("#buscarCod").keyup(function(){
        $("#buscarDes").val("");
    })
    $("#buscarDes").keyup(function(){
        $("#buscarCod").val("");
    })
    //$("#codigo").blur(validarNumeroContrato)

    /*AYUDA*/
    $('#ayudaBtn').qtip({
        content: '<b style="color:red">*</b> Para editar un contrato, haga doble click sobre el registro seleccionado<br /><b style="color:red">*</b> Para buscar un registro utilice los campos del pie de cada columna',
        show: 'mouseover',
        hide: 'mouseout',
        style: {
            name: 'cream', 
            border: {
                width: 3,
                radius: 8                                         
            },
            width: 200,
            tip: { // Now an object instead of a string
                corner: 'topRight', // We declare our corner within the object using the corner sub-option
                color: 'orange',
                size: {
                    x: 20, // Be careful that the x and y values refer to coordinates on screen, not height or width.
                    y : 8 // Depending on which corner your tooltip is at, x and y could mean either height or width!
                }
            }
        },
        position: {
            corner: {
                target: 'bottomLeft',
                tooltip: 'topRight'
            },
            container: $('div.tooltips')                          
        }
    })
}


/*Muestra el dialogo para capturar los datos de la tabla*/
function formularioContrato(){ 
    $("#contrato-form").dialog({
        height: 700,
        width: 1000,
        modal: true,
        title:"Contrato",
        buttons:{
            "Cancelar":function(){
                                
                if(confirm("Seguro de cerrar el formulario?"))
                    $(this).dialog("close")
                                
            },
            "Guardar":
                                                              
            function(){
                if($("#op").val()=='nuevo'){
                    validarNumeroContrato()
                }else{
                    guardar_contrato()
                }                              
                                
            }
                                
                                
        }
    });
                        
        
    //alert(contarContratadas())
        
    $("#pagination").pagination(contarContratadas(),{
        items_per_page:10,
        num_edge_entries: 2,
        num_display_entries: 8,
        callback: cargarActividadesContratadas
    });                    
                        
                        
}


/*Guarda los datos de la tabla*/
function guardar_contrato(){
    
    if ($("#formContrato").valid()){
        var form = $("#formContrato");
        var op=$("#op").val()+"_contrato";

        var formLocal={
            id:$("#id").val(),
            codigo:$("#codigo").val(),
            descripcion:$("#descripcion").val()
        };
        $.ajax({
            type:'POST',
            url:'/salus/AdministrarSetServlet',
            data:form.serialize()+"&op="+op,
            success:function(data) {
                var resp = data.split("_");
                var resp2 = resp[1].split("=>");


                if(resp[0] == "editar" ){                
                    edit_contrato(formLocal)
                    $("#contrato-form").dialog("close")               
                }else {

                    //add_contrato(formLocal)
                    //$("#contrato-form").dialog("close")

                    $.getJSON("/salus/AdministrarEditServlet", {
                        op:"6",
                        id:resp2[1]
                    }, function(data){
                        data.op="editar";                    
                        mostrar_campos(data);
                        formularioContrato();
                        $("#tabs_contrato").tabs('enable',1);
                        $("#tabs_contrato").tabs('enable',2);
                        cargarActividadesContratadas();
                    })


                }
           
        
       
            }
        });
    }
}


/*Actualiza los datos en la grilla, despues de actualizar los datos*/
function edit_contrato(contrato){
    $("#contrato-"+contrato.id+"-codigo").text(contrato.codigo)
    $("#contrato-"+contrato.id+"-descripcion").text(contrato.descripcion)
}


/*Crea dinamicamente la grilla, dependiendo de la respuesta de la base de datos in(json)*/
function add_contrato(contrato){
    var tbody=$("#tabla-contrato-body")
    var tr=$("<tr/>").attr("id","contrato-"+contrato.id).appendTo(tbody);
    $("<td/>").appendTo(tr).append(contrato.codigo).attr("id","contrato-"+contrato.id+"-codigo");
    $("<td/>").appendTo(tr).append(contrato.descripcion).attr("id","contrato-"+contrato.id+"-descripcion");

    var aBorrar=$("<a/>").text("Borrar").addClass("borrar").attr("href","#").click(function(){
        if (confirm("¿Desea borrar este asignatura?")){
            $.post("set_data.php",{
                op:"borrar_asignatura",
                id:contrato.id
            },function(data){
                var resp=JSON.parse(data);
                if (resp.estado=="OK"){
                    $("#contrato-"+contrato.id).remove();
                }
            }
            )
        }
        return false;
    })

    var aEditar=$("<a/>").text("Editar").addClass("editar").attr("href","#").click(function(){
        
        
        $.getJSON("/salus/AdministrarEditServlet", {
            op:"6",
            id:contrato.id
        }, function(data){            
            data.op="editar";
            $("#tabs_contrato").tabs()
            mostrar_campos(data);
            formularioContrato();           

            var cantidad = contarContratadas();
            $("#cantidad").val(cantidad);

            cargarActividadesContratadas(0);
            cargarGruposContratados();

        })
        return false;
    })

    $("<td/>").append(aEditar).append(aBorrar).appendTo(tr)

}


function editar(id){
    $.getJSON("/salus/AdministrarEditServlet", {
        op:"6",
        id:id
    }, function(data){            
        data.op="editar";
        $("#tabs_contrato").tabs()
        mostrar_campos(data);
        formularioContrato();           

        var cantidad = contarContratadas();
        $("#cantidad").val(cantidad);

        cargarActividadesContratadas(0);
        cargarGruposContratados();

    })
}



/*Llena el formulario de edicion con los datos retornados via json*/
function mostrar_campos(contrato){


    if(contrato.id!=""){
        $("#op").val(contrato.op)
        $("#id").val(contrato.id)
        $("#codigo").val(contrato.codigo)
        $("#descripcion").val(contrato.descripcion)

        $("#id_entidad").val(contrato.id_entidad)
        $("#id_manual").val(contrato.id_manual)
        $("#id_tipo_contrato").val(contrato.id_tipo_contrato)
        $("#id_regimen").val(contrato.id_regimen)
        $("#id_tipo_doc").val(contrato.id_tipo_doc)

        if(contrato.modelo=="true"){
            $("#modelo").attr("checked", "true");
            $("#vmodelo").val("On")
        }
        if(contrato.pyp=="true"){
            $("#pyp").attr("checked", "true");
            $("#vpyp").val("On")
        }
        if(contrato.gen=="true"){
            $("#gen").attr("checked", "true");
            $("#vgen").val("On")
        }
        if(contrato.activo=="true"){
            $("#activo").attr("checked", "true");
            $("#vactivo").val("On")
        }


        var fec1 = contrato.fechaini.split('-')
        var fec2 = contrato.fechafin.split('-')

        $("#fechaini").val(fec1[2]+'/'+fec1[1]+'/'+fec1[0])
        $("#fechafin").val(fec2[2]+'/'+fec2[1]+'/'+fec2[0])


        $("#monto_fac").val(contrato.monto_fac)
        $("#monto_cap").val(contrato.monto_cap)
        $("#porc").val(contrato.porc)
        $("#upcanual").val(contrato.upcanual)
        $("#upcmes").val(contrato.upcmes)
    }else{
        $("#op").val(contrato.op)
        $("#monto_fac").val(0)
        $("#monto_cap").val(0)
        $("#porc").val(0)
        $("#upcanual").val(0)
        $("#upcmes").val(0)
    }
    


    $("label.error").remove()
}


/*Trae los datos de la base de datos en un objeto json*/
function cargar_contrato(){
    $.getJSON("/salus/AdministrarServlet", {
        op:"6",
        cod:$("#buscarCod").val(),
        des:$("#buscarDes").val()
    }, function(data){
        $.each(data, function(i,item){
            add_contrato(item)
        })
        $("#tabla-contrato").addClass("tablesorter").tablesorter({
            widthFixed: true,
            widgets: ['zebra']
        }).tablesorterPager({
            container: $("#pager")
        })
    })
    
    
    
}


/*gestiona la busqueda de datos en la grilla, por codigo y descripcion*/
function buscar_contrato(){


    if($("#buscarCod").val()==""&&$("#buscarDes").val()==""){
        //window.location.reload();
        alert('Debe digitar un dato de busqueda')
    }else{
       
           
        $("#tabla-contrato-body tr").remove();
        $("#tabla-contrato colgroup").remove();
    
        /*$.getJSON("/salus/AdministrarServlet", {
        op:"6",
        cod:$("#buscarCod").val(),
        des:$("#buscarDes").val()
    }, function(data){
       
               
        if(data.length>0){
            
                $.each(eval(data), function(i,item){
                    add_contrato(item)
                })
                $("#tabla-contrato").addClass("tablesorter").tablesorter({
                    widthFixed: true,
                    widgets: ['zebra']
                }).tablesorterPager({
                    container: $("#pager")
                })
            }else{
                alert('No se encontraron registros')
            }
     })*/
        
        var pars = "op=6"+"&cod="+$("#buscarCod").val()+"&des="+$("#buscarDes").val();
        
        $.ajax({
            url: "/salus/AdministrarServlet",
            dataType: 'json',
            data: pars,
            async:false,
            success: function(data){                 
                 
                //alert(data.count);
                 
                if(data.length>0){
            
                    $.each(eval(data), function(i,item){
                        add_contrato(item)
                    })
                    $("#tabla-contrato").addClass("tablesorter").tablesorter({
                        widthFixed: true,
                        widgets: ['zebra']
                    }).tablesorterPager({
                        container: $("#pager")
                    })
                }else{
                    alert('No se encontraron registros')
                }
            }
        });

        
        
        

    }
}

/*clarea los datos del formulario de busqueda*/
function limpiarBusqueda(){
    $("#buscarCod").val("");
    $("#buscarDes").val("");    
}


function cargarActividadesContratadas(page_id){
    var id_cto = $("#id").val();
    var id_grupo_actividad = $("#id_grupo_actividadC").val();
    
    var tipo = 2;
    

    if(page_id==undefined){
        page_id = 0;
    }

    var buscarCodC = $("#buscarCodC").val();

    $("#acts-contratadas").show()
    var first = (page_id*10)+0;

    //if(first=='NaN'){
    //  first = 0;
    // alert('error: '+first)
    //}

    $.ajax({
        type:'POST',
        url:'/salus/ContratoServlet',
        data:"id="+id_cto+"&tipo="+tipo+'&offset=' + first + '&limit=10'+'&codact='+buscarCodC+"&id_grupo_actividad="+id_grupo_actividad,        
        async: false,
        success:function(data) {
            $("#acts-contratadas").html(data);
        }
    });
}


function cargarActividadesHabilitadas(){
    var id_cto = $("#id").val();
    
    
    var buscarCodh = $("#buscarCodh").val();
    var id_grupo_actividad = $("#id_grupo_actividad").val();
    var tipo = 1;

    if(buscarCodh==""){
        buscarCodh=0;
    }
    $.ajax({
        type:'POST',
        url:'/salus/ContratoServlet',
        data:"id="+id_cto+"&id_grupo_actividad="+id_grupo_actividad+"&buscarCodh="+buscarCodh+"&tipo="+tipo,
        success:function(data) {

            $("#acts-habilitadas").html(data);

        }
    });
}


function cargarGruposContratados(){
    var id_cto = $("#id").val();    
    var tipo = 7;

    $("#id_grupo_actividadC").load("/salus/ContratoServlet", {
        tipo:"8",
        id:id_cto
    });
    
    //alert('algo')

    
    $.ajax({
        type:'POST',
        url:'/salus/ContratoServlet',
        data:"id="+id_cto+"&tipo="+tipo,
        async:false,
        success:function(data) {

            $("#grupos-contratados").html(data);

        }
    });
}


function pasarGrupo(){

    var id_cto = $("#id").val();
    var buscarCodh = $("#buscarCodh").val();
    var id_grupo_actividad = $("#id_grupo_actividad").val();
    var tipo = 3;

    if(parseInt(id_grupo_actividad)==0){
        alert('Debe seleccionar un grupo valido')
        return false;
    }


    if(buscarCodh==""){
        buscarCodh=0;
    }

    if(confirm("Seguro de contratar el grupo: "+$("#id_grupo_actividad  :selected").text())){
        $.ajax({
            type:'POST',
            url:'/salus/ContratoServlet',
            data:"id="+id_cto+"&id_grupo_actividad="+id_grupo_actividad+"&buscarCodh="+buscarCodh+"&tipo="+tipo,
            success:function(data) {
                cargarActividadesContratadas();
                cargarActividadesHabilitadas();
                cargarGruposContratados();
            }
        });
    }

}

function buscarHabilitadas(tipo){
    if(tipo==1){
        if($("#buscarCodh").val().length>3){
            cargarActividadesHabilitadas()
        }
    }else{
        $("#buscarCodh").val("")
        cargarActividadesHabilitadas()
    }
    
}


function buscarContratadas(tipo){    
    cargarActividadesContratadas(0)               
}



function pasarGrupoSel(){
    ids=new Array()
    a=0;
    var id_cto = $("#id").val();
    var buscarCodh = $("#buscarCodh").val();
    var id_grupo_actividad = $("#id_grupo_actividad").val();
    var tipo = 4;


    $("input[class=check_me]").each(function(){
        if((this).checked){
            ids[a]=$(this).val();
            a++;
        }
    })
            
    $.ajax({
        type:'POST',
        url:'/salus/ContratoServlet',
        data:"id="+id_cto+"&ids="+ids+"&buscarCodh="+buscarCodh+"&tipo="+tipo,
        success:function(data) {
            cargarActividadesContratadas();
            cargarActividadesHabilitadas();
            cargarGruposContratados();
        }
    });

    return false;
}


function descontratarActividad(id){

    var tipo = 5;
    var id_cto = $("#id").val();


    if(confirm("Seguro de borrar la actividad?")){
        $.ajax({
            type:'POST',
            url:'/salus/ContratoServlet',
            data:"idCtoAct="+id+"&tipo="+tipo+"&id="+id_cto,
            success:function(data) {
                cargarActividadesContratadas();
                cargarActividadesHabilitadas();
                cargarGruposContratados();
            }
        });
    }
}

function descontratarGrupo(id){

    var tipo = 9;
    var id_cto = $("#id").val();

    if(parseInt(id)==0){
        alert('Debe seleccionar un grupo valido')
        return false;
    }

    if(confirm("Seguro de borrar el Grupo?")){
        $.ajax({
            type:'POST',
            url:'/salus/ContratoServlet',
            data:"idGrupoAct="+id+"&tipo="+tipo+"&id="+id_cto,
            success:function(data) {
                cargarActividadesContratadas();
                cargarActividadesHabilitadas();
                cargarGruposContratados();
            }
        });
    }
}


function contarContratadas(){
    var tipo = 6;
    var id_cto = $("#id").val();
    var cantidad = 0;
    $.ajax({
        type:'POST',
        url:'/salus/ContratoServlet',
        data:"tipo="+tipo+"&id="+id_cto,
        async:false,
        success:function(data) {
            cantidad = data;
        }
    });


    return cantidad;

}


/*BUSCAR DESCUENTOS*/
function ventanaModalCopagos(idgrupo,idcto){
    jQuery("#dialogoBuscarCop").show();



    $("#dialogoBuscarCop").dialog({
        height: 300,
        width: 600,
        modal: true,
        title:"Asignar Modelos de Descuento",
        buttons:{
            "Cancelar":function(){
                $(this).dialog("close")
            }                           
        }
    });

    var params = "idgrupo="+idgrupo+"&idcto="+idcto;
    jQuery.ajax({
        type: "POST",
        url: "/salus/ListaModelCop",
        data: params,
        dataType: 'text',
        success: function(msg){
            jQuery("#datosCop").show()
            jQuery("#datosCop").html(msg)
        }

    });
}

function seleccionarModeloCopago(idcopago,idcto,idgrupo){
    var id_cto = $("#id").val();
    var params = "idgrupo="+idgrupo+"&idcto="+id_cto+"&idcopago="+idcopago;
    jQuery.ajax({
        type: "POST",
        url: "/salus/AsignarModeloCopago",
        data: params,
        dataType: 'text',
        success: function(msg){
            //cerrarModalCop();
            //actualizarGrupo();
            $("#dialogoBuscarCop").dialog("close")
            cargarGruposContratados();
        }

    });
        
        
}


function validarNumeroContrato(){
    var numero = $("#codigo").val();
    
    jQuery.ajax({
        type: "POST",
        url: "/salus/ValidarFormularioServlet",
        data: "op=1&num="+numero,
        dataType: 'json',
        success: function(msg){
            
            if(msg.error=='1'){
                $("#error_num").html("<b style='color:orange'>El codigo ya existe</b>");
                $("#codigo").val("")
                $("#codigo").focus();
            }else{
                $("#error_num").html("");
                guardar_contrato()
            }
        }

    });
}

function clear_form_elements(ele) {

    $(ele).find(':input').each(function() {
        switch(this.type) {
            case 'password':
            case 'select-multiple':
            case 'select-one':
            case 'text':
            case 'file':
            case 'textarea':
                $(this).val('');
                break;
            case 'checkbox':
            case 'radio':
                this.checked = false;
        }
    });

}